Autogenerated HTML docs for v2.26.0-51-ga7d14
diff --git a/RelNotes/2.27.0.txt b/RelNotes/2.27.0.txt new file mode 100644 index 0000000..84eab73 --- /dev/null +++ b/RelNotes/2.27.0.txt
@@ -0,0 +1,41 @@ +Git 2.27 Release Notes +====================== + +Updates since v2.26 +------------------- + +UI, Workflows & Features + + * A handful of options to configure SSL when talking to proxies have + been added. + + +Performance, Internal Implementation, Development Support etc. + + * The advise API has been revamped to allow more systematic enumeration of + advice knobs in the future. + + +Fixes since v2.26 +----------------- + + * The real_path() convenience function can easily be misused; with a + bit of code refactoring in the callers' side, its use has been + eliminated. + (merge 49d3c4b481 am/real-path-fix later to maint). + + * Update "git p4" to work with Python 3. + (merge 6bb40ed20a yz/p4-py3 later to maint). + + * The mechanism to prevent "git commit" from making an empty commit + or amending during an interrupted cherry-pick was broken during the + rewrite of "git rebase" in C, which has been corrected. + (merge 430b75f720 pw/advise-rebase-skip later to maint). + + * Other code cleanup, docfix, build fix, etc. + (merge 564956f358 jc/maintain-doc later to maint). + (merge 7422b2a0a1 sg/commit-slab-clarify-peek later to maint). + (merge 9c688735f6 rs/doc-passthru-fetch-options later to maint). + (merge 757c2ba3e2 en/oidset-uninclude-hashmap later to maint). + (merge 8312aa7d74 jc/config-tar later to maint). + (merge d00a5bdd50 ss/submodule-foreach-cb later to maint).
diff --git a/config.txt b/config.txt index 08b13ba..2450589 100644 --- a/config.txt +++ b/config.txt
@@ -447,6 +447,8 @@ include::config/tag.txt[] +include::config/tar.txt[] + include::config/trace2.txt[] include::config/transfer.txt[]
diff --git a/fetch-options.txt b/fetch-options.txt index a115a1a..00d03ec 100644 --- a/fetch-options.txt +++ b/fetch-options.txt
@@ -61,10 +61,8 @@ See also the `fetch.negotiationAlgorithm` configuration variable documented in linkgit:git-config[1]. -ifndef::git-pull[] --dry-run:: Show what would be done, without making any changes. -endif::git-pull[] -f:: --force:: @@ -95,6 +93,7 @@ --[no-]write-commit-graph:: Write a commit-graph after fetching. This overrides the config setting `fetch.writeCommitGraph`. +endif::git-pull[] -p:: --prune:: @@ -107,6 +106,7 @@ was cloned with the --mirror option), then they are also subject to pruning. Supplying `--prune-tags` is a shorthand for providing the tag refspec. +ifndef::git-pull[] + See the PRUNING section below for more details. @@ -133,7 +133,6 @@ behavior for a remote may be specified with the remote.<name>.tagOpt setting. See linkgit:git-config[1]. -ifndef::git-pull[] --refmap=<refspec>:: When fetching refs listed on the command line, use the specified refspec (can be given more than once) to map the @@ -154,6 +153,7 @@ is used (though tags may be pruned anyway if they are also the destination of an explicit refspec; see `--prune`). +ifndef::git-pull[] --recurse-submodules[=yes|on-demand|no]:: This option controls if and under what conditions new commits of populated submodules should be fetched too. It can be used as a @@ -164,6 +164,7 @@ when the superproject retrieves a commit that updates the submodule's reference to a commit that isn't already in the local submodule clone. +endif::git-pull[] -j:: --jobs=<n>:: @@ -177,9 +178,11 @@ Typically, parallel recursive and multi-remote fetches will be faster. By default fetches are performed sequentially, not in parallel. +ifndef::git-pull[] --no-recurse-submodules:: Disable recursive fetching of submodules (this has the same effect as using the `--recurse-submodules=no` option). +endif::git-pull[] --set-upstream:: If the remote is fetched successfully, pull and add upstream @@ -188,6 +191,7 @@ see `branch.<name>.merge` and `branch.<name>.remote` in linkgit:git-config[1]. +ifndef::git-pull[] --submodule-prefix=<path>:: Prepend <path> to paths printed in informative messages such as "Fetching submodule foo". This option is used
diff --git a/git-config.html b/git-config.html index 99543e1..ac0bd68 100644 --- a/git-config.html +++ b/git-config.html
@@ -5992,6 +5992,47 @@ </div></div> </dd> <dt class="hdlist1"> +http.proxySSLCert +</dt> +<dd> +<p> + The pathname of a file that stores a client certificate to use to authenticate + with an HTTPS proxy. Can be overridden by the <code>GIT_PROXY_SSL_CERT</code> environment + variable. +</p> +</dd> +<dt class="hdlist1"> +http.proxySSLKey +</dt> +<dd> +<p> + The pathname of a file that stores a private key to use to authenticate with + an HTTPS proxy. Can be overridden by the <code>GIT_PROXY_SSL_KEY</code> environment + variable. +</p> +</dd> +<dt class="hdlist1"> +http.proxySSLCertPasswordProtected +</dt> +<dd> +<p> + Enable Git’s password prompt for the proxy SSL certificate. Otherwise OpenSSL + will prompt the user, possibly many times, if the certificate or private key + is encrypted. Can be overriden by the <code>GIT_PROXY_SSL_CERT_PASSWORD_PROTECTED</code> + environment variable. +</p> +</dd> +<dt class="hdlist1"> +http.proxySSLCAInfo +</dt> +<dd> +<p> + Pathname to the file containing the certificate bundle that should be used to + verify the proxy with when using an HTTPS proxy. Can be overriden by the + <code>GIT_PROXY_SSL_CAINFO</code> environment variable. +</p> +</dd> +<dt class="hdlist1"> http.emptyAuth </dt> <dd>
diff --git a/git-pull.html b/git-pull.html index 53be312..bf0f782 100644 --- a/git-pull.html +++ b/git-pull.html
@@ -1260,6 +1260,14 @@ documented in <a href="git-config.html">git-config(1)</a>.</p></div> </dd> <dt class="hdlist1"> +--dry-run +</dt> +<dd> +<p> + Show what would be done, without making any changes. +</p> +</dd> +<dt class="hdlist1"> -f </dt> <dt class="hdlist1"> @@ -1286,6 +1294,25 @@ </p> </dd> <dt class="hdlist1"> +-p +</dt> +<dt class="hdlist1"> +--prune +</dt> +<dd> +<p> + Before fetching, remove any remote-tracking references that no + longer exist on the remote. Tags are not subject to pruning + if they are fetched only because of the default tag + auto-following or due to a --tags option. However, if tags + are fetched due to an explicit refspec (either on the command + line or in the remote configuration, for example if the remote + was cloned with the --mirror option), then they are also + subject to pruning. Supplying <code>--prune-tags</code> is a shorthand for + providing the tag refspec. +</p> +</dd> +<dt class="hdlist1"> --no-tags </dt> <dd> @@ -1298,6 +1325,67 @@ </p> </dd> <dt class="hdlist1"> +--refmap=<refspec> +</dt> +<dd> +<p> + When fetching refs listed on the command line, use the + specified refspec (can be given more than once) to map the + refs to remote-tracking branches, instead of the values of + <code>remote.*.fetch</code> configuration variables for the remote + repository. Providing an empty <code><refspec></code> to the + <code>--refmap</code> option causes Git to ignore the configured + refspecs and rely entirely on the refspecs supplied as + command-line arguments. See section on "Configured Remote-tracking + Branches" for details. +</p> +</dd> +<dt class="hdlist1"> +-t +</dt> +<dt class="hdlist1"> +--tags +</dt> +<dd> +<p> + Fetch all tags from the remote (i.e., fetch remote tags + <code>refs/tags/*</code> into local tags with the same name), in addition + to whatever else would otherwise be fetched. Using this + option alone does not subject tags to pruning, even if --prune + is used (though tags may be pruned anyway if they are also the + destination of an explicit refspec; see <code>--prune</code>). +</p> +</dd> +<dt class="hdlist1"> +-j +</dt> +<dt class="hdlist1"> +--jobs=<n> +</dt> +<dd> +<p> + Number of parallel children to be used for all forms of fetching. +</p> +<div class="paragraph"><p>If the <code>--multiple</code> option was specified, the different remotes will be fetched +in parallel. If multiple submodules are fetched, they will be fetched in +parallel. To control them independently, use the config settings +<code>fetch.parallel</code> and <code>submodule.fetchJobs</code> (see <a href="git-config.html">git-config(1)</a>).</p></div> +<div class="paragraph"><p>Typically, parallel recursive and multi-remote fetches will be faster. By +default fetches are performed sequentially, not in parallel.</p></div> +</dd> +<dt class="hdlist1"> +--set-upstream +</dt> +<dd> +<p> + If the remote is fetched successfully, pull and add upstream + (tracking) reference, used by argument-less + <a href="git-pull.html">git-pull(1)</a> and other commands. For more information, + see <code>branch.<name>.merge</code> and <code>branch.<name>.remote</code> in + <a href="git-config.html">git-config(1)</a>. +</p> +</dd> +<dt class="hdlist1"> -u </dt> <dt class="hdlist1">
diff --git a/howto-index.html b/howto-index.html index c55997b..d7c150a 100644 --- a/howto-index.html +++ b/howto-index.html
@@ -885,7 +885,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:02:57 PDT + 2020-03-25 14:27:26 PDT </div> </div> </body>
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html index 4e53591..763dbf5 100644 --- a/howto/keep-canonical-history-correct.html +++ b/howto/keep-canonical-history-correct.html
@@ -938,7 +938,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:03:02 PDT + 2020-03-25 14:28:48 PDT </div> </div> </body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html index ae89510..b5faba3 100644 --- a/howto/maintain-git.html +++ b/howto/maintain-git.html
@@ -974,7 +974,8 @@ Anything unobvious that is applicable to <em>master</em> (in other words, does not depend on anything that is still in <em>next</em> and not in <em>master</em>) is applied to a new topic branch that - is forked from the tip of <em>master</em>. This includes both + is forked from the tip of <em>master</em> (or the last feature release, + which is a bit older than <em>master</em>). This includes both enhancements and unobvious fixes to <em>master</em>. A topic branch is named as ai/topic where "ai" is two-letter string named after author’s initial and "topic" is a descriptive name @@ -984,8 +985,9 @@ <li> <p> An unobvious fix meant for <em>maint</em> is applied to a new - topic branch that is forked from the tip of <em>maint</em>. The - topic is named as ai/maint-topic. + topic branch that is forked from the tip of <em>maint</em> (or the + oldest and still relevant maintenance branch). The + topic may be named as ai/maint-topic. </p> </li> <li> @@ -1011,7 +1013,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><code>The above except the "replacement" are all done with:</code></pre> +<pre><code>The initial round is done with:</code></pre> </div></div> <div class="literalblock"> <div class="content"> @@ -1020,27 +1022,48 @@ </div></div> <div class="literalblock"> <div class="content"> -<pre><code>while patch replacement is often done by:</code></pre> +<pre><code>and replacing an existing topic with subsequent round is done with:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><code>$ git format-patch ai/topic~$n..ai/topic ;# export existing</code></pre> +<pre><code>$ git checkout master...ai/topic ;# try to reapply to the same base +$ git am -sc3 mailbox</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><code>then replace some parts with the new patch, and reapplying:</code></pre> +<pre><code>to prepare the new round on a detached HEAD, and then</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><code>$ git checkout ai/topic -$ git reset --hard ai/topic~$n -$ git am -sc3 -s 000*.txt</code></pre> +<pre><code>$ git range-diff @{-1}... +$ git diff @{-1}</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><code>The full test suite is always run for 'maint' and 'master' -after patch application; for topic branches the tests are run -as time permits.</code></pre> +<pre><code>to double check what changed since the last round, and finally</code></pre> +</div></div> +<div class="literalblock"> +<div class="content"> +<pre><code>$ git checkout -B @{-1}</code></pre> +</div></div> +<div class="literalblock"> +<div class="content"> +<pre><code>to conclude (the last step is why a topic already in 'next' is +not replaced but updated incrementally).</code></pre> +</div></div> +<div class="literalblock"> +<div class="content"> +<pre><code>Whether it is the initial round or a subsequent round, the topic +may not build even in isolation, or may break the build when +merged to integration branches due to bugs. There may already +be obvious and trivial improvements suggested on the list. The +maintainer often adds an extra commit, with "SQUASH???" in its +title, to fix things up, before publishing the integration +branches to make it usable by other developers for testing. +These changes are what the maintainer is not 100% committed to +(trivial typofixes etc. are often squashed directly into the +patches that need fixing, without being applied as a separate +"SQUASH???" commit), so that they can be removed easily as needed.</code></pre> </div></div> </li> <li> @@ -1346,6 +1369,17 @@ <em>master</em> branch typically is. </p> </li> +<li> +<p> +Due to the nature of "SQUASH???" fix-ups, if the original author + agrees with the suggested changes, it is OK to squash them to + appropriate patches in the next round (when the suggested change + is small enough, the author should not even bother with + "Helped-by"). It is also OK to drop them from the next round + when the original author does not agree with the suggestion, but + the author is expected to say why somewhere in the discussion. +</p> +</li> </ul></div> </div> </div> @@ -1435,7 +1469,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:03:02 PDT + 2020-03-25 14:28:48 PDT </div> </div> </body>
diff --git a/howto/maintain-git.txt b/howto/maintain-git.txt index ca43787..73be8b4 100644 --- a/howto/maintain-git.txt +++ b/howto/maintain-git.txt
@@ -154,15 +154,17 @@ - Anything unobvious that is applicable to 'master' (in other words, does not depend on anything that is still in 'next' and not in 'master') is applied to a new topic branch that - is forked from the tip of 'master'. This includes both + is forked from the tip of 'master' (or the last feature release, + which is a bit older than 'master'). This includes both enhancements and unobvious fixes to 'master'. A topic branch is named as ai/topic where "ai" is two-letter string named after author's initial and "topic" is a descriptive name of the topic (in other words, "what's the series is about"). - An unobvious fix meant for 'maint' is applied to a new - topic branch that is forked from the tip of 'maint'. The - topic is named as ai/maint-topic. + topic branch that is forked from the tip of 'maint' (or the + oldest and still relevant maintenance branch). The + topic may be named as ai/maint-topic. - Changes that pertain to an existing topic are applied to the branch, but: @@ -174,24 +176,40 @@ - Replacement patches to an existing topic are accepted only for commits not in 'next'. - The above except the "replacement" are all done with: + The initial round is done with: $ git checkout ai/topic ;# or "git checkout -b ai/topic master" $ git am -sc3 mailbox - while patch replacement is often done by: + and replacing an existing topic with subsequent round is done with: - $ git format-patch ai/topic~$n..ai/topic ;# export existing + $ git checkout master...ai/topic ;# try to reapply to the same base + $ git am -sc3 mailbox - then replace some parts with the new patch, and reapplying: + to prepare the new round on a detached HEAD, and then - $ git checkout ai/topic - $ git reset --hard ai/topic~$n - $ git am -sc3 -s 000*.txt + $ git range-diff @{-1}... + $ git diff @{-1} - The full test suite is always run for 'maint' and 'master' - after patch application; for topic branches the tests are run - as time permits. + to double check what changed since the last round, and finally + + $ git checkout -B @{-1} + + to conclude (the last step is why a topic already in 'next' is + not replaced but updated incrementally). + + Whether it is the initial round or a subsequent round, the topic + may not build even in isolation, or may break the build when + merged to integration branches due to bugs. There may already + be obvious and trivial improvements suggested on the list. The + maintainer often adds an extra commit, with "SQUASH???" in its + title, to fix things up, before publishing the integration + branches to make it usable by other developers for testing. + These changes are what the maintainer is not 100% committed to + (trivial typofixes etc. are often squashed directly into the + patches that need fixing, without being applied as a separate + "SQUASH???" commit), so that they can be removed easily as needed. + - Merge maint to master as needed: @@ -371,6 +389,14 @@ be included in the next feature release. Being in the 'master' branch typically is. + * Due to the nature of "SQUASH???" fix-ups, if the original author + agrees with the suggested changes, it is OK to squash them to + appropriate patches in the next round (when the suggested change + is small enough, the author should not even bother with + "Helped-by"). It is also OK to drop them from the next round + when the original author does not agree with the suggestion, but + the author is expected to say why somewhere in the discussion. + Appendix --------
diff --git a/howto/new-command.html b/howto/new-command.html index 78d3b88..b2815f2 100644 --- a/howto/new-command.html +++ b/howto/new-command.html
@@ -863,7 +863,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:02:58 PDT + 2020-03-25 14:28:42 PDT </div> </div> </body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html index 7509e95..3699169 100644 --- a/howto/rebase-from-internal-branch.html +++ b/howto/rebase-from-internal-branch.html
@@ -895,7 +895,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:03:02 PDT + 2020-03-25 14:28:48 PDT </div> </div> </body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html index 93f5f2c..f31c295 100644 --- a/howto/rebuild-from-update-hook.html +++ b/howto/rebuild-from-update-hook.html
@@ -847,7 +847,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:03:01 PDT + 2020-03-25 14:28:47 PDT </div> </div> </body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html index 756a0b8..c5bb93f 100644 --- a/howto/recover-corrupted-blob-object.html +++ b/howto/recover-corrupted-blob-object.html
@@ -880,7 +880,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:03:01 PDT + 2020-03-25 14:28:46 PDT </div> </div> </body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html index 0f988f2..f89986c 100644 --- a/howto/recover-corrupted-object-harder.html +++ b/howto/recover-corrupted-object-harder.html
@@ -1189,7 +1189,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:03:01 PDT + 2020-03-25 14:28:47 PDT </div> </div> </body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html index 26f4b32..4e29ea6 100644 --- a/howto/revert-a-faulty-merge.html +++ b/howto/revert-a-faulty-merge.html
@@ -1025,7 +1025,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:03:01 PDT + 2020-03-25 14:28:46 PDT </div> </div> </body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html index f562b8b..4840f3f 100644 --- a/howto/revert-branch-rebase.html +++ b/howto/revert-branch-rebase.html
@@ -907,7 +907,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:02:59 PDT + 2020-03-25 14:28:42 PDT </div> </div> </body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html index f9773ea..f1510bc 100644 --- a/howto/separating-topic-branches.html +++ b/howto/separating-topic-branches.html
@@ -841,7 +841,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:03:01 PDT + 2020-03-25 14:28:45 PDT </div> </div> </body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html index e1c428c..16ebb4d 100644 --- a/howto/setup-git-server-over-http.html +++ b/howto/setup-git-server-over-http.html
@@ -1071,7 +1071,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:03:00 PDT + 2020-03-25 14:28:45 PDT </div> </div> </body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html index 806c02f..23dc6d7 100644 --- a/howto/update-hook-example.html +++ b/howto/update-hook-example.html
@@ -930,7 +930,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:03:00 PDT + 2020-03-25 14:28:44 PDT </div> </div> </body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html index 1fb856b..d82b91c 100644 --- a/howto/use-git-daemon.html +++ b/howto/use-git-daemon.html
@@ -791,7 +791,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:03:00 PDT + 2020-03-25 14:28:44 PDT </div> </div> </body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html index 41b4ca1..269561d 100644 --- a/howto/using-merge-subtree.html +++ b/howto/using-merge-subtree.html
@@ -848,7 +848,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:02:59 PDT + 2020-03-25 14:28:43 PDT </div> </div> </body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html index abdf447..46ebea7 100644 --- a/howto/using-signed-tag-in-pull-request.html +++ b/howto/using-signed-tag-in-pull-request.html
@@ -952,7 +952,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-22 18:02:59 PDT + 2020-03-25 14:28:43 PDT </div> </div> </body>